{
  "bundles": [
    {
      "@type": "NXBundle",
      "artifactId": "nuxeo-core-schema",
      "artifactVersion": "2021.66.4",
      "bundleGroup": {
        "@type": "NXBundleGroup",
        "bundleIds": [
          "org.nuxeo.ecm.core",
          "org.nuxeo.ecm.core.api",
          "org.nuxeo.ecm.core.bulk",
          "org.nuxeo.ecm.core.cache",
          "org.nuxeo.ecm.core.event",
          "org.nuxeo.ecm.core.io",
          "org.nuxeo.ecm.core.mimetype",
          "org.nuxeo.ecm.core.mongodb",
          "org.nuxeo.ecm.core.persistence",
          "org.nuxeo.ecm.core.query",
          "org.nuxeo.ecm.core.redis",
          "org.nuxeo.ecm.core.schema",
          "org.nuxeo.ecm.platform.el"
        ],
        "hierarchyPath": "/grp:org.nuxeo.ecm.core",
        "id": "grp:org.nuxeo.ecm.core",
        "name": "org.nuxeo.ecm.core",
        "parentIds": [],
        "readmes": [],
        "version": "2021.66"
      },
      "bundleId": "org.nuxeo.ecm.core.schema",
      "components": [
        {
          "@type": "NXComponent",
          "componentClass": "org.nuxeo.ecm.core.schema.types.resolver.ObjectResolverServiceImpl",
          "documentation": "\n    This components allows to extend XSD field definition by providing a way to resolve simple type as\n    external entity references.\n  \n",
          "documentationHtml": "<p>\nThis components allows to extend XSD field definition by providing a way to resolve simple type as\nexternal entity references.\n</p><p></p>",
          "extensionPoints": [
            {
              "@type": "NXExtensionPoint",
              "componentId": "org.nuxeo.ecm.core.schema.ObjectResolverService",
              "descriptors": [
                "org.nuxeo.ecm.core.schema.types.resolver.ObjectResolverDescriptor"
              ],
              "documentation": "\n\n      Extension Point to register an external entity resolver. You must provide an XSD type derived from xs:string and\n      registered under namespace http://www.nuxeo.org/ecm/schemas/core/external-references/. The resolver class must\n      implement org.nuxeo.ecm.core.schema.types.resolver.ObjectResolver.\n      Example :\n      <resolver\n    class=\"org.mycompany.product.ProductNuxeoResolver\" type=\"productReference\"/>\n\n\n\n      By default, a constraint is added to documents about to be saved in order to validate if the property reference\n      an existing external entity. You can disable this validation by setting attribute validation to false, for instance:\n      <code\n    xmlns:ref=\"http://www.nuxeo.org/ecm/schemas/core/external-references/\" xmlns:xs=\"http://www.w3.org/2001/XMLSchema\">\n    <xs:element name=\"lastContributor\">\n        <xs:simpleType>\n            <xs:restriction base=\"xs:string\"\n                ref:resolver=\"userManagerResolver\" ref:type=\"user\" ref:validation=\"false\"/>\n        </xs:simpleType>\n    </xs:element>\n</code>\n",
              "documentationHtml": "<p>\nExtension Point to register an external entity resolver. You must provide an XSD type derived from xs:string and\nregistered under namespace http://www.nuxeo.org/ecm/schemas/core/external-references/. The resolver class must\nimplement org.nuxeo.ecm.core.schema.types.resolver.ObjectResolver.\nExample :\n\n</p><p>\nBy default, a constraint is added to documents about to be saved in order to validate if the property reference\nan existing external entity. You can disable this validation by setting attribute validation to false, for instance:\n<code>\n\n\n\n\n\n</code></p>",
              "hierarchyPath": "/grp:org.nuxeo.ecm.core/org.nuxeo.ecm.core.schema/org.nuxeo.ecm.core.schema.ObjectResolverService/ExtensionPoints/org.nuxeo.ecm.core.schema.ObjectResolverService--resolvers",
              "id": "org.nuxeo.ecm.core.schema.ObjectResolverService--resolvers",
              "label": "resolvers (org.nuxeo.ecm.core.schema.ObjectResolverService)",
              "name": "resolvers",
              "version": "2021.66.4"
            }
          ],
          "extensions": [],
          "hierarchyPath": "/grp:org.nuxeo.ecm.core/org.nuxeo.ecm.core.schema/org.nuxeo.ecm.core.schema.ObjectResolverService",
          "name": "org.nuxeo.ecm.core.schema.ObjectResolverService",
          "requirements": [],
          "resolutionOrder": 158,
          "services": [
            {
              "@type": "NXService",
              "componentId": "org.nuxeo.ecm.core.schema.ObjectResolverService",
              "hierarchyPath": "/grp:org.nuxeo.ecm.core/org.nuxeo.ecm.core.schema/org.nuxeo.ecm.core.schema.ObjectResolverService/Services/org.nuxeo.ecm.core.schema.types.resolver.ObjectResolverService",
              "id": "org.nuxeo.ecm.core.schema.types.resolver.ObjectResolverService",
              "overriden": false,
              "version": "2021.66.4"
            }
          ],
          "startOrder": 832,
          "version": "2021.66.4",
          "xmlFileContent": "<?xml version=\"1.0\"?>\n\n<component name=\"org.nuxeo.ecm.core.schema.ObjectResolverService\" version=\"1.0.0\">\n  <documentation>\n    This components allows to extend XSD field definition by providing a way to resolve simple type as\n    external entity references.\n  </documentation>\n\n  <service>\n    <provide interface=\"org.nuxeo.ecm.core.schema.types.resolver.ObjectResolverService\" />\n  </service>\n\n  <implementation class=\"org.nuxeo.ecm.core.schema.types.resolver.ObjectResolverServiceImpl\" />\n\n  <extension-point name=\"resolvers\">\n\n    <documentation>\n      Extension Point to register an external entity resolver. You must provide an XSD type derived from xs:string and\n      registered under namespace http://www.nuxeo.org/ecm/schemas/core/external-references/. The resolver class must\n      implement org.nuxeo.ecm.core.schema.types.resolver.ObjectResolver.\n      Example :\n      <resolver type=\"productReference\" class=\"org.mycompany.product.ProductNuxeoResolver\" />\n\n      By default, a constraint is added to documents about to be saved in order to validate if the property reference\n      an existing external entity. You can disable this validation by setting attribute validation to false, for instance:\n      <code xmlns:xs=\"http://www.w3.org/2001/XMLSchema\"\n            xmlns:ref=\"http://www.nuxeo.org/ecm/schemas/core/external-references/\">\n        <xs:element name=\"lastContributor\">\n          <xs:simpleType>\n            <xs:restriction base=\"xs:string\" ref:resolver=\"userManagerResolver\" ref:type=\"user\" ref:validation=\"false\" />\n          </xs:simpleType>\n        </xs:element>\n      </code>\n    </documentation>\n\n    <object class=\"org.nuxeo.ecm.core.schema.types.resolver.ObjectResolverDescriptor\" />\n\n  </extension-point>\n\n</component>\n",
          "xmlFileName": "/OSGI-INF/ObjectResolverService.xml",
          "xmlPureComponent": false
        },
        {
          "@type": "NXComponent",
          "componentClass": "org.nuxeo.ecm.core.schema.TypeService",
          "declaredStartOrder": -100,
          "documentation": "\n    Manage document types and schemas.\n    Allows registrering new types defined using XSD schemas\n    @author Bogdan Stefanescu (bs@nuxeo.com)\n  \n",
          "documentationHtml": "<p>\nManage document types and schemas.\nAllows registrering new types defined using XSD schemas\n</p><p></p>",
          "extensionPoints": [
            {
              "@type": "NXExtensionPoint",
              "componentId": "org.nuxeo.ecm.core.schema.TypeService",
              "descriptors": [
                "org.nuxeo.ecm.core.schema.TypeConfiguration"
              ],
              "documentation": "\n      Type manager configuration.\n      <p/>\n\n      This contains default prefetch options and clearComplexPropertyBeforeSet options. For example:\n      <code>\n    <configuration>\n        <prefetch>common, dublincore</prefetch>\n        <clearComplexPropertyBeforeSet>true</clearComplexPropertyBeforeSet>\n        <allowVersionWriteForDublinCore>false</allowVersionWriteForDublinCore>\n    </configuration>\n</code>\n\n      Note that since 11.1, setting fields, such as dc:modified, as prefetch is DEPRECATED:\n      only schema names are supported.\n\n      Note that setting clearComplexPropertyBeforeSet to false is DEPRECATED since 9.3.\n      Note that setting allowVersionWriteForDublinCore to true is DEPRECATED since 10.3.\n    \n",
              "documentationHtml": "<p>\nType manager configuration.\n</p><p>\nThis contains default prefetch options and clearComplexPropertyBeforeSet options. For example:\n</p><p></p><pre><code>    &lt;configuration&gt;\n        &lt;prefetch&gt;common, dublincore&lt;/prefetch&gt;\n        &lt;clearComplexPropertyBeforeSet&gt;true&lt;/clearComplexPropertyBeforeSet&gt;\n        &lt;allowVersionWriteForDublinCore&gt;false&lt;/allowVersionWriteForDublinCore&gt;\n    &lt;/configuration&gt;\n</code></pre><p>\nNote that since 11.1, setting fields, such as dc:modified, as prefetch is DEPRECATED:\nonly schema names are supported.\n</p><p>\nNote that setting clearComplexPropertyBeforeSet to false is DEPRECATED since 9.3.\nNote that setting allowVersionWriteForDublinCore to true is DEPRECATED since 10.3.\n</p><p></p>",
              "hierarchyPath": "/grp:org.nuxeo.ecm.core/org.nuxeo.ecm.core.schema/org.nuxeo.ecm.core.schema.TypeService/ExtensionPoints/org.nuxeo.ecm.core.schema.TypeService--configuration",
              "id": "org.nuxeo.ecm.core.schema.TypeService--configuration",
              "label": "configuration (org.nuxeo.ecm.core.schema.TypeService)",
              "name": "configuration",
              "version": "2021.66.4"
            },
            {
              "@type": "NXExtensionPoint",
              "componentId": "org.nuxeo.ecm.core.schema.TypeService",
              "descriptors": [
                "org.nuxeo.ecm.core.schema.DocumentTypeDescriptor",
                "org.nuxeo.ecm.core.schema.FacetDescriptor",
                "org.nuxeo.ecm.core.schema.ProxiesDescriptor"
              ],
              "documentation": "\n      Extension Point to register new document types and facets.\n      <p/>\n\n      Document types may implement several schemas and extends other\n      document types. You can compare document types with java\n      classes and schemas with java interfaces. Document types may\n      also contains several facets that define a behavior.\n      <p/>\n\n      The prefetch element defines what fields are synchronously\n      indexed, and are made available in search results listings.\n      <p/>\n\n      A doctype XML extension may contain several 'doctype' elements.\n      A doctype element may look like this:\n\n      <code>\n    <doctype extends=\"Document\" name=\"File\">\n        <schema name=\"common\"/>\n        <schema name=\"file\"/>\n        <schema name=\"dublincore\"/>\n        <schema name=\"uid\"/>\n        <facet name=\"Downloadable\"/>\n        <facet name=\"Versionable\"/>\n        <prefetch>dc:title, dc:modified, uid.uid</prefetch>\n    </doctype>\n</code>\n\n\n      Document types may also specify subtypes, which are sets of other\n      document types that can be created inside the this document type\n      being defined.\n      <p/>\n\n      This configuration only applies in the UI and will not affect\n      documents created through APIs (e.g. REST, Java)\n      This can be achieved as follows:\n\n      <code>\n    <doctype extends=\"Document\" name=\"SomeFolder\">\n        <subtypes>\n            <type>File</type>\n        </subtypes>\n    </doctype>\n</code>\n\n\n      When extending a doctype, forbidden subtypes can also be specified\n      to prevent a specific type from being created.\n      <p/>\n\n      This configuration only applies in the UI and will not affect\n      documents created through APIs (e.g. REST, Java)\n\n      <code>\n    <doctype append=\"true\" name=\"SomeFolder\">\n        <subtypes>\n            <type>SomeOtherFile</type>\n        </subtypes>\n        <subtypes-forbidden>\n            <type>File</type>\n        </subtypes-forbidden>\n    </doctype>\n</code>\n\n\n      Facets are also defined by this extension point.\n      They can have zero or more schemas:\n\n      <code>\n    <facet name=\"MyFacet\" perDocumentQuery=\"false\"/>\n    <facet name=\"MyFacetWithData\">\n        <schema name=\"myschema\"/>\n        <schema name=\"otherschema\"/>\n    </facet>\n    <facet enabled=\"false\" name=\"MyOldFacet\"/>\n</code>\n\n\n      Queries using ecm:mixinType on facets marked with\n      perDocumentQuery=\"false\" will not match any document where\n      this facet has been added using DocumentModel.addFacet() and does\n      not belong to the document type (this is done for performance reasons).\n\n      Facets with enabled=false will be ignored in all document types\n      still referencing them, and will not be returned when listing available facets.\n\n      It's also possible to associate one or more schemas to all proxies:\n      <code>\n    <proxies>\n        <schema name=\"myschema\"/>\n    </proxies>\n</code>\n",
              "documentationHtml": "<p>\nExtension Point to register new document types and facets.\n</p><p>\nDocument types may implement several schemas and extends other\ndocument types. You can compare document types with java\nclasses and schemas with java interfaces. Document types may\nalso contains several facets that define a behavior.\n</p><p>\nThe prefetch element defines what fields are synchronously\nindexed, and are made available in search results listings.\n</p><p>\nA doctype XML extension may contain several &#39;doctype&#39; elements.\nA doctype element may look like this:\n</p><p>\n</p><pre><code>    &lt;doctype extends&#61;&#34;Document&#34; name&#61;&#34;File&#34;&gt;\n        &lt;schema name&#61;&#34;common&#34;/&gt;\n        &lt;schema name&#61;&#34;file&#34;/&gt;\n        &lt;schema name&#61;&#34;dublincore&#34;/&gt;\n        &lt;schema name&#61;&#34;uid&#34;/&gt;\n        &lt;facet name&#61;&#34;Downloadable&#34;/&gt;\n        &lt;facet name&#61;&#34;Versionable&#34;/&gt;\n        &lt;prefetch&gt;dc:title, dc:modified, uid.uid&lt;/prefetch&gt;\n    &lt;/doctype&gt;\n</code></pre><p>\nDocument types may also specify subtypes, which are sets of other\ndocument types that can be created inside the this document type\nbeing defined.\n</p><p>\nThis configuration only applies in the UI and will not affect\ndocuments created through APIs (e.g. REST, Java)\nThis can be achieved as follows:\n</p><p>\n</p><pre><code>    &lt;doctype extends&#61;&#34;Document&#34; name&#61;&#34;SomeFolder&#34;&gt;\n        &lt;subtypes&gt;\n            &lt;type&gt;File&lt;/type&gt;\n        &lt;/subtypes&gt;\n    &lt;/doctype&gt;\n</code></pre><p>\nWhen extending a doctype, forbidden subtypes can also be specified\nto prevent a specific type from being created.\n</p><p>\nThis configuration only applies in the UI and will not affect\ndocuments created through APIs (e.g. REST, Java)\n</p><p>\n</p><pre><code>    &lt;doctype append&#61;&#34;true&#34; name&#61;&#34;SomeFolder&#34;&gt;\n        &lt;subtypes&gt;\n            &lt;type&gt;SomeOtherFile&lt;/type&gt;\n        &lt;/subtypes&gt;\n        &lt;subtypes-forbidden&gt;\n            &lt;type&gt;File&lt;/type&gt;\n        &lt;/subtypes-forbidden&gt;\n    &lt;/doctype&gt;\n</code></pre><p>\nFacets are also defined by this extension point.\nThey can have zero or more schemas:\n</p><p>\n</p><pre><code>    &lt;facet name&#61;&#34;MyFacet&#34; perDocumentQuery&#61;&#34;false&#34;/&gt;\n    &lt;facet name&#61;&#34;MyFacetWithData&#34;&gt;\n        &lt;schema name&#61;&#34;myschema&#34;/&gt;\n        &lt;schema name&#61;&#34;otherschema&#34;/&gt;\n    &lt;/facet&gt;\n    &lt;facet enabled&#61;&#34;false&#34; name&#61;&#34;MyOldFacet&#34;/&gt;\n</code></pre><p>\nQueries using ecm:mixinType on facets marked with\nperDocumentQuery&#61;&#34;false&#34; will not match any document where\nthis facet has been added using DocumentModel.addFacet() and does\nnot belong to the document type (this is done for performance reasons).\n</p><p>\nFacets with enabled&#61;false will be ignored in all document types\nstill referencing them, and will not be returned when listing available facets.\n</p><p>\nIt&#39;s also possible to associate one or more schemas to all proxies:\n</p><p></p><pre><code>    &lt;proxies&gt;\n        &lt;schema name&#61;&#34;myschema&#34;/&gt;\n    &lt;/proxies&gt;\n</code></pre><p></p>",
              "hierarchyPath": "/grp:org.nuxeo.ecm.core/org.nuxeo.ecm.core.schema/org.nuxeo.ecm.core.schema.TypeService/ExtensionPoints/org.nuxeo.ecm.core.schema.TypeService--doctype",
              "id": "org.nuxeo.ecm.core.schema.TypeService--doctype",
              "label": "doctype (org.nuxeo.ecm.core.schema.TypeService)",
              "name": "doctype",
              "version": "2021.66.4"
            },
            {
              "@type": "NXExtensionPoint",
              "componentId": "org.nuxeo.ecm.core.schema.TypeService",
              "descriptors": [
                "org.nuxeo.ecm.core.schema.SchemaBindingDescriptor",
                "org.nuxeo.ecm.core.schema.PropertyDescriptor"
              ],
              "documentation": "\n      Extension Point to register new schemas.\n      <p/>\n\n      Schemas are defined using XSD files.\n      The schema extension XML may containg several 'schema' objects as\n      the following ones:\n      <code>\n    <schema name=\"common\" src=\"schema/common.xsd\"/>\n    <schema name=\"dublincore\" prefix=\"dc\" src=\"schema/dublincore.xsd\"/>\n</code>\n\n      The <i>name</i>\n attribute uniquely identify the schema, the <i>src</i>\n attribute specify\n      the path to that schema (relative to the bundle root) and the <i>prefix</i>\n is used as\n      a prefix (short name) of the schema namespace.\n      The schema namespace is the targetNamespace defined inside the XSD file\n      <p/>\n\n      Note that multiple schemas can share the same target namespace and prefix\n      <p/>\n\n      You can also create a Nuxeo Schema from a sub part of the XSD schema.\n      For that you can use the xsdRootElement attribute to indicate the complex type to use.\n      <code>\n    <schema name=\"employeeSchema\" src=\"schema/testExtension.xsd\" xsdRootElement=\"employee\"/>\n</code>\n\n      A schema can be completely disabled with:\n      <code>\n    <schema enabled=\"false\" name=\"myOldSchema\"/>\n</code>\n\n      Schemas with enabled=false will be ignored in all document types and facets\n      still referencing them, and will not be returned when listing available schemas.\n\n      Extension Point is also used to register additional property information, called property characteristic, such as:\n      <ul>\n    <li>secured: only administrators can edit it</li>\n    <li>deprecation: flag property as deprecated or removed</li>\n</ul>\n\n      XML extensions may contain any number of 'property' elements of the form:\n      <code>\n    <property name=\"creator\" schema=\"dublincore\" secured=\"true\"/>\n    <property deprecation=\"deprecated\" name=\"size\" schema=\"common\"/>\n    <property deprecation=\"removed\" fallback=\"content/name\"\n        name=\"filename\" schema=\"file\"/>\n</code>\n\n\n      Properties declared with secured attribute can only be edited by administrators.\n      <p/>\n\n      Properties declared with deprecation attribute enable deprecation mechanism inside Nuxeo Platform.\n      This generates WARN message of usage to help to remove deprecated usage.\n      <p/>\n\n      A contribution is one of these types:\n      <ul>\n    <li>deprecated: property still exists in schema definition, but it'll be removed in next version</li>\n    <li>removed: property has been removed from schema definition, relax platform behavior. This will avoid Nuxeo\n          property not found exceptions for remaining use of the property\n        </li>\n</ul>\n\n      The fallback attribute is optional, its value has to be a xpath referencing an existing property in the same\n      schema than deprecated/removed property.\n      When presents, it is used:\n      <ul>\n    <li>to set the value to the fallback property</li>\n    <li>to get the value from the fallback property if it exists</li>\n</ul>\n\n      Note: for a deprecated property, setValue also set value to property and getValue get value from property if\n      fallback value is null.\n      <p/>\n\n      For example, the contribution below enables WARN message of usage of property <i>file:filename</i>\n. This will also\n      get/set the value from/to <i>file:content/name</i>\n for deprecated usage of <i>file:filename</i>\n property.\n      <code>\n    <property deprecation=\"deprecated\" fallback=\"content/name\"\n        name=\"filename\" schema=\"file\"/>\n</code>\n\n      As it, each usage of this property will automatically fallback on the fallback and avoid exception from platform.\n      This will also allows to import document declaring the removed property.\n    \n",
              "documentationHtml": "<p>\nExtension Point to register new schemas.\n</p><p>\nSchemas are defined using XSD files.\nThe schema extension XML may containg several &#39;schema&#39; objects as\nthe following ones:\n</p><p></p><pre><code>    &lt;schema name&#61;&#34;common&#34; src&#61;&#34;schema/common.xsd&#34;/&gt;\n    &lt;schema name&#61;&#34;dublincore&#34; prefix&#61;&#34;dc&#34; src&#61;&#34;schema/dublincore.xsd&#34;/&gt;\n</code></pre><p>\nThe <i>name</i>\nattribute uniquely identify the schema, the <i>src</i>\nattribute specify\nthe path to that schema (relative to the bundle root) and the <i>prefix</i>\nis used as\na prefix (short name) of the schema namespace.\nThe schema namespace is the targetNamespace defined inside the XSD file\n</p><p>\nNote that multiple schemas can share the same target namespace and prefix\n</p><p>\nYou can also create a Nuxeo Schema from a sub part of the XSD schema.\nFor that you can use the xsdRootElement attribute to indicate the complex type to use.\n</p><p></p><pre><code>    &lt;schema name&#61;&#34;employeeSchema&#34; src&#61;&#34;schema/testExtension.xsd&#34; xsdRootElement&#61;&#34;employee&#34;/&gt;\n</code></pre><p>\nA schema can be completely disabled with:\n</p><p></p><pre><code>    &lt;schema enabled&#61;&#34;false&#34; name&#61;&#34;myOldSchema&#34;/&gt;\n</code></pre><p>\nSchemas with enabled&#61;false will be ignored in all document types and facets\nstill referencing them, and will not be returned when listing available schemas.\n</p><p>\nExtension Point is also used to register additional property information, called property characteristic, such as:\n</p><ul><li>secured: only administrators can edit it</li><li>deprecation: flag property as deprecated or removed</li></ul>\n<p>\nXML extensions may contain any number of &#39;property&#39; elements of the form:\n</p><p></p><pre><code>    &lt;property name&#61;&#34;creator&#34; schema&#61;&#34;dublincore&#34; secured&#61;&#34;true&#34;/&gt;\n    &lt;property deprecation&#61;&#34;deprecated&#34; name&#61;&#34;size&#34; schema&#61;&#34;common&#34;/&gt;\n    &lt;property deprecation&#61;&#34;removed&#34; fallback&#61;&#34;content/name&#34;\n        name&#61;&#34;filename&#34; schema&#61;&#34;file&#34;/&gt;\n</code></pre><p>\nProperties declared with secured attribute can only be edited by administrators.\n</p><p>\nProperties declared with deprecation attribute enable deprecation mechanism inside Nuxeo Platform.\nThis generates WARN message of usage to help to remove deprecated usage.\n</p><p>\nA contribution is one of these types:\n</p><ul><li>deprecated: property still exists in schema definition, but it&#39;ll be removed in next version</li><li>removed: property has been removed from schema definition, relax platform behavior. This will avoid Nuxeo\nproperty not found exceptions for remaining use of the property\n</li></ul>\n<p>\nThe fallback attribute is optional, its value has to be a xpath referencing an existing property in the same\nschema than deprecated/removed property.\nWhen presents, it is used:\n</p><ul><li>to set the value to the fallback property</li><li>to get the value from the fallback property if it exists</li></ul>\n<p>\nNote: for a deprecated property, setValue also set value to property and getValue get value from property if\nfallback value is null.\n</p><p>\nFor example, the contribution below enables WARN message of usage of property <i>file:filename</i>\n. This will also\nget/set the value from/to <i>file:content/name</i>\nfor deprecated usage of <i>file:filename</i>\nproperty.\n</p><p></p><pre><code>    &lt;property deprecation&#61;&#34;deprecated&#34; fallback&#61;&#34;content/name&#34;\n        name&#61;&#34;filename&#34; schema&#61;&#34;file&#34;/&gt;\n</code></pre><p>\nAs it, each usage of this property will automatically fallback on the fallback and avoid exception from platform.\nThis will also allows to import document declaring the removed property.\n</p><p></p>",
              "hierarchyPath": "/grp:org.nuxeo.ecm.core/org.nuxeo.ecm.core.schema/org.nuxeo.ecm.core.schema.TypeService/ExtensionPoints/org.nuxeo.ecm.core.schema.TypeService--schema",
              "id": "org.nuxeo.ecm.core.schema.TypeService--schema",
              "label": "schema (org.nuxeo.ecm.core.schema.TypeService)",
              "name": "schema",
              "version": "2021.66.4"
            },
            {
              "@type": "NXExtensionPoint",
              "componentId": "org.nuxeo.ecm.core.schema.TypeService",
              "descriptors": [
                "org.nuxeo.ecm.core.schema.PropertyDeprecationDescriptor"
              ],
              "documentation": "\n      Extension Point to register deprecated/removed properties.\n      XML extensions may contain any number of 'property' elements of the form:\n      <code>\n    <property deprecated=\"true\" name=\"size\" schema=\"common\"/>\n    <property fallback=\"content/name\" name=\"filename\" schema=\"file\"/>\n</code>\n\n      A property contributed to this extension point enables deprecation mechanisms inside Nuxeo Platform.\n      This generates WARN message of usage to help to remove deprecated usage.\n      <p/>\n\n      A contribution is one of these types:\n      <ul>\n    <li>deprecated: property still exists in schema definition, but it'll be removed in next version</li>\n    <li>removed: property has been removed from schema definition, relax platform behavior. This will avoid Nuxeo\n          property not found exceptions for remaining use of the property\n        </li>\n</ul>\n\n      The fallback attribute is optional, its value has to be a xpath referencing an existing property in the same\n      schema than removed/deprecated property.\n      When presents, it is used:\n      <ul>\n    <li>to set the value to the fallback property</li>\n    <li>to get the value from the fallback property if it exists</li>\n</ul>\n\n      Note: for a deprecated property, setValue also set value to property and getValue get value from property if\n      fallback value is null.\n      <p/>\n\n      For example, the contribution below enables WARN message of usage of property <i>file:filename</i>\n. This will also\n      get/set the value from/to <i>file:content/name</i>\n for deprecated usage of <i>file:filename</i>\n property.\n      <code>\n    <property fallback=\"content/name\" name=\"filename\" schema=\"file\"/>\n</code>\n\n      As it, each usage of this property will automatically fallback on the fallback and avoid exception from platform.\n      This will also allows to import document declaring the removed property.\n      <p/>\n\n      @since 9.2\n      @deprecated since 11.1, use schema extension point with PropertyDescriptor object\n    \n",
              "documentationHtml": "<p>\nExtension Point to register deprecated/removed properties.\nXML extensions may contain any number of &#39;property&#39; elements of the form:\n</p><p></p><pre><code>    &lt;property deprecated&#61;&#34;true&#34; name&#61;&#34;size&#34; schema&#61;&#34;common&#34;/&gt;\n    &lt;property fallback&#61;&#34;content/name&#34; name&#61;&#34;filename&#34; schema&#61;&#34;file&#34;/&gt;\n</code></pre><p>\nA property contributed to this extension point enables deprecation mechanisms inside Nuxeo Platform.\nThis generates WARN message of usage to help to remove deprecated usage.\n</p><p>\nA contribution is one of these types:\n</p><ul><li>deprecated: property still exists in schema definition, but it&#39;ll be removed in next version</li><li>removed: property has been removed from schema definition, relax platform behavior. This will avoid Nuxeo\nproperty not found exceptions for remaining use of the property\n</li></ul>\n<p>\nThe fallback attribute is optional, its value has to be a xpath referencing an existing property in the same\nschema than removed/deprecated property.\nWhen presents, it is used:\n</p><ul><li>to set the value to the fallback property</li><li>to get the value from the fallback property if it exists</li></ul>\n<p>\nNote: for a deprecated property, setValue also set value to property and getValue get value from property if\nfallback value is null.\n</p><p>\nFor example, the contribution below enables WARN message of usage of property <i>file:filename</i>\n. This will also\nget/set the value from/to <i>file:content/name</i>\nfor deprecated usage of <i>file:filename</i>\nproperty.\n</p><p></p><pre><code>    &lt;property fallback&#61;&#34;content/name&#34; name&#61;&#34;filename&#34; schema&#61;&#34;file&#34;/&gt;\n</code></pre><p>\nAs it, each usage of this property will automatically fallback on the fallback and avoid exception from platform.\nThis will also allows to import document declaring the removed property.\n</p><p>\n&#64;since 9.2\n&#64;deprecated since 11.1, use schema extension point with PropertyDescriptor object\n</p><p></p>",
              "hierarchyPath": "/grp:org.nuxeo.ecm.core/org.nuxeo.ecm.core.schema/org.nuxeo.ecm.core.schema.TypeService/ExtensionPoints/org.nuxeo.ecm.core.schema.TypeService--deprecation",
              "id": "org.nuxeo.ecm.core.schema.TypeService--deprecation",
              "label": "deprecation (org.nuxeo.ecm.core.schema.TypeService)",
              "name": "deprecation",
              "version": "2021.66.4"
            }
          ],
          "extensions": [],
          "hierarchyPath": "/grp:org.nuxeo.ecm.core/org.nuxeo.ecm.core.schema/org.nuxeo.ecm.core.schema.TypeService",
          "name": "org.nuxeo.ecm.core.schema.TypeService",
          "requirements": [
            "org.nuxeo.ecm.core.schema.ObjectResolverService"
          ],
          "resolutionOrder": 159,
          "services": [
            {
              "@type": "NXService",
              "componentId": "org.nuxeo.ecm.core.schema.TypeService",
              "hierarchyPath": "/grp:org.nuxeo.ecm.core/org.nuxeo.ecm.core.schema/org.nuxeo.ecm.core.schema.TypeService/Services/org.nuxeo.ecm.core.schema.SchemaManager",
              "id": "org.nuxeo.ecm.core.schema.SchemaManager",
              "overriden": false,
              "version": "2021.66.4"
            },
            {
              "@type": "NXService",
              "componentId": "org.nuxeo.ecm.core.schema.TypeService",
              "hierarchyPath": "/grp:org.nuxeo.ecm.core/org.nuxeo.ecm.core.schema/org.nuxeo.ecm.core.schema.TypeService/Services/org.nuxeo.ecm.core.schema.TypeProvider",
              "id": "org.nuxeo.ecm.core.schema.TypeProvider",
              "overriden": false,
              "version": "2021.66.4"
            },
            {
              "@type": "NXService",
              "componentId": "org.nuxeo.ecm.core.schema.TypeService",
              "hierarchyPath": "/grp:org.nuxeo.ecm.core/org.nuxeo.ecm.core.schema/org.nuxeo.ecm.core.schema.TypeService/Services/org.nuxeo.ecm.core.schema.PropertyCharacteristicHandler",
              "id": "org.nuxeo.ecm.core.schema.PropertyCharacteristicHandler",
              "overriden": false,
              "version": "2021.66.4"
            }
          ],
          "startOrder": 15,
          "version": "2021.66.4",
          "xmlFileContent": "<?xml version=\"1.0\"?>\n<component name=\"org.nuxeo.ecm.core.schema.TypeService\" version=\"1.0.0\">\n  <documentation>\n    Manage document types and schemas.\n    Allows registrering new types defined using XSD schemas\n    @author Bogdan Stefanescu (bs@nuxeo.com)\n  </documentation>\n\n  <require>org.nuxeo.ecm.core.schema.ObjectResolverService</require>\n\n  <service>\n    <provide interface=\"org.nuxeo.ecm.core.schema.SchemaManager\" />\n    <provide interface=\"org.nuxeo.ecm.core.schema.TypeProvider\" />\n    <provide interface=\"org.nuxeo.ecm.core.schema.PropertyCharacteristicHandler\" />\n  </service>\n\n  <implementation class=\"org.nuxeo.ecm.core.schema.TypeService\" />\n\n  <extension-point name=\"configuration\">\n\n    <documentation>\n      Type manager configuration.\n      <p />\n      This contains default prefetch options and clearComplexPropertyBeforeSet options. For example:\n      <code>\n        <configuration>\n          <prefetch>common, dublincore</prefetch>\n          <clearComplexPropertyBeforeSet>true</clearComplexPropertyBeforeSet>\n          <allowVersionWriteForDublinCore>false</allowVersionWriteForDublinCore>\n        </configuration>\n      </code>\n      Note that since 11.1, setting fields, such as dc:modified, as prefetch is DEPRECATED:\n      only schema names are supported.\n\n      Note that setting clearComplexPropertyBeforeSet to false is DEPRECATED since 9.3.\n      Note that setting allowVersionWriteForDublinCore to true is DEPRECATED since 10.3.\n    </documentation>\n\n    <object class=\"org.nuxeo.ecm.core.schema.TypeConfiguration\" />\n\n  </extension-point>\n\n  <extension-point name=\"doctype\">\n\n    <documentation>\n      Extension Point to register new document types and facets.\n      <p />\n      Document types may implement several schemas and extends other\n      document types. You can compare document types with java\n      classes and schemas with java interfaces. Document types may\n      also contains several facets that define a behavior.\n      <p />\n      The prefetch element defines what fields are synchronously\n      indexed, and are made available in search results listings.\n      <p />\n      A doctype XML extension may contain several 'doctype' elements.\n      A doctype element may look like this:\n\n      <code>\n        <doctype name=\"File\" extends=\"Document\">\n          <schema name=\"common\" />\n          <schema name=\"file\" />\n          <schema name=\"dublincore\" />\n          <schema name=\"uid\" />\n          <facet name=\"Downloadable\" />\n          <facet name=\"Versionable\" />\n          <prefetch>dc:title, dc:modified, uid.uid</prefetch>\n        </doctype>\n      </code>\n\n      Document types may also specify subtypes, which are sets of other\n      document types that can be created inside the this document type\n      being defined.\n      <p />\n      This configuration only applies in the UI and will not affect\n      documents created through APIs (e.g. REST, Java)\n      This can be achieved as follows:\n\n      <code>\n        <doctype name=\"SomeFolder\" extends=\"Document\">\n          <subtypes>\n            <type>File</type>\n          </subtypes>\n        </doctype>\n      </code>\n\n      When extending a doctype, forbidden subtypes can also be specified\n      to prevent a specific type from being created.\n      <p />\n      This configuration only applies in the UI and will not affect\n      documents created through APIs (e.g. REST, Java)\n\n      <code>\n        <doctype name=\"SomeFolder\" append=\"true\">\n          <subtypes>\n            <type>SomeOtherFile</type>\n          </subtypes>\n          <subtypes-forbidden>\n            <type>File</type>\n          </subtypes-forbidden>\n        </doctype>\n      </code>\n\n      Facets are also defined by this extension point.\n      They can have zero or more schemas:\n\n      <code>\n        <facet name=\"MyFacet\" perDocumentQuery=\"false\" />\n        <facet name=\"MyFacetWithData\">\n          <schema name=\"myschema\" />\n          <schema name=\"otherschema\" />\n        </facet>\n        <facet name=\"MyOldFacet\" enabled=\"false\" />\n      </code>\n\n      Queries using ecm:mixinType on facets marked with\n      perDocumentQuery=\"false\" will not match any document where\n      this facet has been added using DocumentModel.addFacet() and does\n      not belong to the document type (this is done for performance reasons).\n\n      Facets with enabled=false will be ignored in all document types\n      still referencing them, and will not be returned when listing available facets.\n\n      It's also possible to associate one or more schemas to all proxies:\n      <code>\n        <proxies>\n          <schema name=\"myschema\" />\n        </proxies>\n      </code>\n    </documentation>\n\n    <object class=\"org.nuxeo.ecm.core.schema.DocumentTypeDescriptor\" />\n    <object class=\"org.nuxeo.ecm.core.schema.FacetDescriptor\" />\n    <object class=\"org.nuxeo.ecm.core.schema.ProxiesDescriptor\" />\n\n  </extension-point>\n\n  <extension-point name=\"schema\">\n\n    <documentation>\n      Extension Point to register new schemas.\n      <p />\n      Schemas are defined using XSD files.\n      The schema extension XML may containg several 'schema' objects as\n      the following ones:\n      <code>\n        <schema name=\"common\" src=\"schema/common.xsd\" />\n        <schema name=\"dublincore\" prefix=\"dc\" src=\"schema/dublincore.xsd\" />\n      </code>\n      The <i>name</i> attribute uniquely identify the schema, the <i>src</i> attribute specify\n      the path to that schema (relative to the bundle root) and the <i>prefix</i> is used as\n      a prefix (short name) of the schema namespace.\n      The schema namespace is the targetNamespace defined inside the XSD file\n      <p />\n      Note that multiple schemas can share the same target namespace and prefix\n      <p />\n      You can also create a Nuxeo Schema from a sub part of the XSD schema.\n      For that you can use the xsdRootElement attribute to indicate the complex type to use.\n      <code>\n        <schema name=\"employeeSchema\" src=\"schema/testExtension.xsd\" xsdRootElement=\"employee\" />\n      </code>\n      A schema can be completely disabled with:\n      <code>\n        <schema name=\"myOldSchema\" enabled=\"false\" />\n      </code>\n      Schemas with enabled=false will be ignored in all document types and facets\n      still referencing them, and will not be returned when listing available schemas.\n\n      Extension Point is also used to register additional property information, called property characteristic, such as:\n      <ul>\n        <li>secured: only administrators can edit it</li>\n        <li>deprecation: flag property as deprecated or removed</li>\n      </ul>\n      XML extensions may contain any number of 'property' elements of the form:\n      <code>\n        <property schema=\"dublincore\" name=\"creator\" secured=\"true\" />\n        <property schema=\"common\" name=\"size\" deprecation=\"deprecated\" />\n        <property schema=\"file\" name=\"filename\" deprecation=\"removed\" fallback=\"content/name\" />\n      </code>\n\n      Properties declared with secured attribute can only be edited by administrators.\n      <p />\n      Properties declared with deprecation attribute enable deprecation mechanism inside Nuxeo Platform.\n      This generates WARN message of usage to help to remove deprecated usage.\n      <p />\n      A contribution is one of these types:\n      <ul>\n        <li>deprecated: property still exists in schema definition, but it'll be removed in next version</li>\n        <li>removed: property has been removed from schema definition, relax platform behavior. This will avoid Nuxeo\n          property not found exceptions for remaining use of the property\n        </li>\n      </ul>\n      The fallback attribute is optional, its value has to be a xpath referencing an existing property in the same\n      schema than deprecated/removed property.\n      When presents, it is used:\n      <ul>\n        <li>to set the value to the fallback property</li>\n        <li>to get the value from the fallback property if it exists</li>\n      </ul>\n      Note: for a deprecated property, setValue also set value to property and getValue get value from property if\n      fallback value is null.\n      <p />\n      For example, the contribution below enables WARN message of usage of property <i>file:filename</i>. This will also\n      get/set the value from/to <i>file:content/name</i> for deprecated usage of <i>file:filename</i> property.\n      <code>\n        <property schema=\"file\" name=\"filename\" deprecation=\"deprecated\" fallback=\"content/name\" />\n      </code>\n      As it, each usage of this property will automatically fallback on the fallback and avoid exception from platform.\n      This will also allows to import document declaring the removed property.\n    </documentation>\n\n    <object class=\"org.nuxeo.ecm.core.schema.SchemaBindingDescriptor\" />\n    <object class=\"org.nuxeo.ecm.core.schema.PropertyDescriptor\" />\n\n  </extension-point>\n\n  <extension-point name=\"deprecation\">\n\n    <documentation>\n      Extension Point to register deprecated/removed properties.\n      XML extensions may contain any number of 'property' elements of the form:\n      <code>\n        <property schema=\"common\" name=\"size\" deprecated=\"true\" />\n        <property schema=\"file\" name=\"filename\" fallback=\"content/name\" />\n      </code>\n      A property contributed to this extension point enables deprecation mechanisms inside Nuxeo Platform.\n      This generates WARN message of usage to help to remove deprecated usage.\n      <p />\n      A contribution is one of these types:\n      <ul>\n        <li>deprecated: property still exists in schema definition, but it'll be removed in next version</li>\n        <li>removed: property has been removed from schema definition, relax platform behavior. This will avoid Nuxeo\n          property not found exceptions for remaining use of the property\n        </li>\n      </ul>\n      The fallback attribute is optional, its value has to be a xpath referencing an existing property in the same\n      schema than removed/deprecated property.\n      When presents, it is used:\n      <ul>\n        <li>to set the value to the fallback property</li>\n        <li>to get the value from the fallback property if it exists</li>\n      </ul>\n      Note: for a deprecated property, setValue also set value to property and getValue get value from property if\n      fallback value is null.\n      <p />\n      For example, the contribution below enables WARN message of usage of property <i>file:filename</i>. This will also\n      get/set the value from/to <i>file:content/name</i> for deprecated usage of <i>file:filename</i> property.\n      <code>\n        <property schema=\"file\" name=\"filename\" fallback=\"content/name\" />\n      </code>\n      As it, each usage of this property will automatically fallback on the fallback and avoid exception from platform.\n      This will also allows to import document declaring the removed property.\n      <p />\n      @since 9.2\n      @deprecated since 11.1, use schema extension point with PropertyDescriptor object\n    </documentation>\n\n    <object class=\"org.nuxeo.ecm.core.schema.PropertyDeprecationDescriptor\" />\n\n  </extension-point>\n\n</component>\n",
          "xmlFileName": "/OSGI-INF/SchemaService.xml",
          "xmlPureComponent": false
        }
      ],
      "fileName": "nuxeo-core-schema-2021.66.4.jar",
      "groupId": "org.nuxeo.ecm.core",
      "hierarchyPath": "/grp:org.nuxeo.ecm.core/org.nuxeo.ecm.core.schema",
      "id": "org.nuxeo.ecm.core.schema",
      "location": "",
      "manifest": "Manifest-Version: 1.0\r\nArchiver-Version: Plexus Archiver\r\nCreated-By: 1.6.0_20 (Sun Microsystems Inc.)\r\nBuilt-By: root\r\nBuild-Jdk: 11.0.25\r\nBundle-ManifestVersion: 2\r\nBundle-Version: 5.4.2.qualifier\r\nExport-Package: org.nuxeo.ecm.core.schema,org.nuxeo.ecm.core.schema.ty\r\n pes,org.nuxeo.ecm.core.schema.types.constraints,org.nuxeo.ecm.core.sc\r\n hema.types.primitives,org.nuxeo.ecm.core.schema.utils\r\nBundle-ActivationPolicy: lazy\r\nBundle-ClassPath: .\r\nBundle-Name: org.nuxeo.ecm.core.schema\r\nBundle-RequiredExecutionEnvironment: JavaSE-1.6\r\nNuxeo-Component: OSGI-INF/ObjectResolverService.xml, OSGI-INF/SchemaSe\r\n rvice.xml\r\nImport-Package: com.sun.xml.xsom,com.sun.xml.xsom.impl,com.sun.xml.xso\r\n m.parser,org.apache.commons.logging,org.nuxeo.common.utils,org.nuxeo.\r\n common.xmap.annotation,org.nuxeo.runtime,org.nuxeo.runtime.api,org.nu\r\n xeo.runtime.model,org.xml.sax\r\nBundle-SymbolicName: org.nuxeo.ecm.core.schema;singleton:=true\r\n\r\n",
      "maxResolutionOrder": 159,
      "minResolutionOrder": 158,
      "packages": [],
      "requirements": [],
      "version": "2021.66.4"
    }
  ],
  "creationDate": 1738059524582,
  "key": "Nuxeo Platform-2021.66",
  "name": "Nuxeo Platform",
  "operations": [],
  "packages": [],
  "pluginSnapshots": {},
  "releaseDate": 1738059524582,
  "version": "2021.66"
}